// P3959 write by cn_ryh